Ext
		.onReady(function() {

			Ext.QuickTips.init();
			Ext.form.Field.prototype.msgTarget = 'under';

			var sm = new Ext.grid.CheckboxSelectionModel();

			var cm = new Ext.grid.ColumnModel([ sm, new Ext.grid.RowNumberer({
				header : "编号",
				width : 40
			}), {
				header : '债项号',
				dataIndex : 'debtNo',
				hidden : true
			}, {
				header : '债项编号',
				dataIndex : 'debtId'
			}, {
				header : '客户ID',
				dataIndex : 'custId',
				hidden : true
			}, {
				header : '客户名称',
				dataIndex : 'custName',
				hidden : true
			}, {
				header : '债项名称',
				dataIndex : 'debtDesc',
				width : 100
			}, {
				header : '债项业务品种',
				dataIndex : 'debtType',
				width : 100
			}, {
				header : '合同金额(元)',
				dataIndex : 'debtSum',
				width : 100
			}, {
				header : '信贷余额(元)',
				dataIndex : 'debtBalance',
				width : 100
			}, {
				header : '币种',
				dataIndex : 'currency',
				width : 100
			}, {
				header : '起始日',
				dataIndex : 'startDate',
				width : 100
			}, {
				header : '到期日',
				dataIndex : 'endDate',
				width : 100
			}, {
				header : '当前资产分类',
				dataIndex : 'classifyResult',
				width : 100
			}, {
				header : '分类认定日期',
				dataIndex : 'classifyDate',
				width : 100
			} ]);

			var ds = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : 'obligation/listDebt.do',
					method : 'POST'
				}),
				reader : new Ext.data.JsonReader({}, [ {
					name : 'debtNo'
				}, {
					name : 'debtId'
				}, {
					name : 'custId'
				}, {
					name : 'custName'
				}, {
					name : 'debtDesc'
				}, {
					name : 'debtType'
				}, {
					name : 'debtSum'
				}, {
					name : 'debtBalance'
				}, {
					name : 'currency'
				}, {
					name : 'startDate'
				}, {
					name : 'endDate'
				}, {
					name : 'classifyResult'
				}, {
					name : 'classifyDate'
				} ])
			});
			ds.load({
				params : {
					start : 0,
					limit : 20
				}
			});

			var classifyResultStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : 'showType.do?type=ClassifyResult',
					method : 'GET'
				}),
				reader : new Ext.data.JsonReader({}, [ {
					name : 'name'
				}, {
					name : 'code'
				} ]),
				autoLoad : true
			});

			var grid = new Ext.grid.GridPanel({
				id : 'myCustomers',
				renderTo : "debt_list",
				stripeRows : true,// 斑马线效果
				title : "债项列表",
				height : 500,
				cm : cm,
				store : ds,
				loadMask : {
					msg : "加载中..."
				},
				viewConfig : {
					forceFit : true
				},
				bbar : new Ext.PagingToolbar({
					pageSize : 20,
					store : ds,
					displayInfo : true,
					displayMsg : '第{0} 到 {1} 条数据 共{2}条',
					emptyMsg : "没有数据"
				}),
				tbar : [ {
					text : '信贷资产分类',
					handler : showCRAll
				} ]
			});

			// 分类列表
			var cm2 = new Ext.grid.ColumnModel([ sm, new Ext.grid.RowNumberer({
				header : "编号",
				width : 40
			}), {
				header : '流水号',
				dataIndex : 'serialNo',
				hidden : true
			}, {
				header : '债项ID',
				dataIndex : 'debtNo',
				hidden : true
			}, {
				header : '初分结果',
				dataIndex : 'firstResult',
				width : 100
			}, {
				header : '初分日期',
				dataIndex : 'firstDate',
				width : 100
			}, {
				header : '分类状态',
				dataIndex : 'status',
				width : 100
			}, {
				header : '分类认定结果',
				dataIndex : 'confirmResult',
				width : 100
			}, {
				header : '分类认定日期',
				dataIndex : 'confirmDate',
				width : 100
			}, ]);

			// 分类列表数据源
			var ds2 = new Ext.data.Store({
				reader : new Ext.data.JsonReader({}, [ {
					name : 'serialNo'
				}, {
					name : 'debtNo'
				}, {
					name : 'confirmResult'
				}, {
					name : 'confirmDate'
				}, {
					name : 'firstResult'
				}, {
					name : 'firstDate'
				}, {
					name : 'status'
				} ])
			});

			var grid2 = new Ext.grid.GridPanel({
				id : 'cr_list',
				stripeRows : true,
				height : 460,
				cm : cm2,
				store : ds2,
				loadMask : {
					msg : "加载中..."
				},
				viewConfig : {
					forceFit : true
				},
				bbar : new Ext.PagingToolbar({
					pageSize : 20,
					store : ds2,
					displayInfo : true,
					displayMsg : '第{0} 到 {1} 条数据 共{2}条',
					emptyMsg : "没有数据"
				}),
				tbar : [ {
					text : '新增初分信息',
					id : 'btnAdd'
				}, '-', {
					text : '查看/编辑初分信息',
					handler : checkClassify
				}, '-', {
					text : '资产分类初分提交',
					handler : commitClassify
				} ]
			});

			// 债项资产分类列表窗口
			var win = new Ext.Window({
				id : 'win',
				title : '<div align="center">当前债项-资产分类列表</div>',
				width : 760,
				height : 500,
				// 背景遮罩
				modal : true,
				// 重置大小
				resizable : false,
				// 当关闭按钮被点击时执行的动作
				closeAction : 'hide',
				plain : true,
				items : [ grid2 ]
			});

			addForm2 = new Ext.form.FormPanel({
				id : 'addForm2',
				width : 480,
				height : 300,
				// 样式
				bodyStyle : 'margin:3px 3px 3px 3px',
				frame : true,
				xtype : 'filedset',
				labelWidth : 100,
				items : [ {
					xtype : 'fieldset',
					title : '资产分类信息',
					collapsible : true,
					autoHeight : true,
					autoWidth : true,
					items : [ {
						layout : "form",
						items : [ {
							xtype : 'combo',
							id : "firstResult",
							store : classifyResultStore,
							fieldLabel : '本次分类初分结果',
							valueField : 'code',
							displayField : 'name',
							emptyText : '请选择初分结果...',
							allowBlank : false,
							blankText : '请选择初分结果',
							typeAhead : true,
							width : 150,
							mode : 'local',
							hiddenName : 'firstResult',
							editable : false,
							triggerAction : 'all',
							selectOnFocus : true
						} ]
					}, {
						layout : "form",
						items : [ {
							xtype : 'textarea',
							id : 'classifyDesc',
							name : 'classifyDesc',
							fieldLabel : '本次分类设定原因说明',
							allowBlank : true,
							maxLength : 200,
							maxLengthText : '最多只允许输入200个汉字',
							height : 100,
							anchor : '97%'
						} ]
					},

					{
						layout : "form",
						items : [ {
							xtype : 'combo',
							id : "confirmResult",
							name : 'confirmResult',
							store : classifyResultStore,
							fieldLabel : '调整后分类结果',
							valueField : 'code',
							displayField : 'name',
							allowBlank : true,
							readOnly : true,
							hidden : true,
							typeAhead : true,
							width : 150,
							mode : 'remote',
							hiddenName : 'confirmResult',
							editable : false,
							triggerAction : 'all',
							selectOnFocus : true
						} ]
					}, {
						layout : "form",
						items : [ {
							xtype : 'textarea',
							id : 'confirmDesc',
							name : 'confirmDesc',
							fieldLabel : '调整初分结果原因说明',
							allowBlank : true,
							readOnly : true,
							hidden : true,
							hidden : true,
							maxLength : 100,
							maxLengthText : '最多只允许输入200个汉字',
							height : 100,
							anchor : '97%'
						} ]
					},

					{
						layout : "form",
						items : [ {
							xtype : 'hidden',
							id : "serialNo",
							fieldLabel : '流水号',
							allowBlank : true
						} ]
					} ]
				} ]
			});

			// 新增窗口
			addWin2 = new Ext.Window({
				id : 'addWin2',
				title : '债项信贷资产分类',
				width : 500,
				height : 370,
				// 背景遮罩
				modal : true,
				// 重置大小
				resizable : false,
				// 当关闭按钮被点击时执行的动作
				closeAction : 'hide',
				plain : true,
				buttonAlign : 'right',
				items : addForm2,
				buttons : [ {
					text : '保存',
					id : 'btnSubmit2'
				}, {
					text : '关闭',
					handler : function() {
						Ext.getCmp('addWin2').hide();
					}
				} ]
			});

			var debtNo = "";

			function showCRAll() {
				if (grid.getSelectionModel().getSelections()[0] == undefined) {
					Ext.Msg.alert("提示", "请选中要操作的项！");
				} else {
					debtNo = grid.getSelectionModel().getSelections()[0].data.debtNo;
					ds2.proxy = new Ext.data.HttpProxy({
						url : 'obligation/listDebtAllClassifyRecord.do?debtNo='
								+ debtNo,
						method : 'POST'
					});
					ds2.load({
						params : {
							start : 0,
							limit : 10
						}
					});
					Ext.getCmp('win').show();
				}
			}

			function addClassify() {

				var firstResult = grid.getSelectionModel().getSelections()[0].data.firstResult;
				var status = grid.getSelectionModel().getSelections()[0].data.status;

				Ext.getCmp('addForm2').form.reset();
				if (firstResult == "") {
					Ext.getCmp("addWin2").buttons[0].handler = addClassifyFunction;
				} else {

					Ext.Ajax
							.request({
								url : 'obligation/getClassifyRecord.do',
								params : {
									serialNo : grid.getSelectionModel()
											.getSelections()[0].data.serialNo
								},
								method : 'POST',
								success : function(response) {
									var json = Ext.util.JSON
											.decode(response.responseText);
									Ext.getCmp('firstResult').setValue(
											json.firstResult);
									Ext.getCmp('classifyDesc').setValue(
											json.classifyDesc);
									Ext.getCmp('serialNo').setValue(
											json.serialNo);
									if (status == '初分状态' || status == '打回初分人状态') {
										Ext.getCmp("addWin2").buttons[0].handler = editClassifyFunction;
									} else if (status == '待认定状态') {
										Ext.getCmp("addWin2").buttons[0].handler = function() {
											Ext.MessageBox.alert("提示",
													"当前结果已提交，不能修改！");
										};
									} else if (status == '已认定') {
										Ext.getCmp("addWin2").buttons[0].handler = function() {
											Ext.MessageBox.alert("提示",
													"当前结果已认定，不能修改！");
										};
									}
								},
								failure : function() {
									Ext.MessageBox.alert("请求异常！");
								}
							});
				}

				Ext.getCmp("addWin2").buttons[0].handler = addClassifyFunction;
				Ext.getCmp("addWin2").show();

			}

			function addClassifyFunction() {
				if (addForm2.form.isValid()) {
					addForm2.form.doAction('submit',
							{
								url : 'obligation/addClassifyRecord.do',
								params : {
									debtNo : grid.getSelectionModel()
											.getSelections()[0].data.debtNo
								},
								method : 'post',
								success : function() {
									Ext.getCmp("addWin2").hide();
									grid2.store.reload();
									Ext.Msg.alert('提示', '保存成功！');
								},
								failure : function() {
									Ext.Msg.alert('提示', '保存失败！');
								}
							});
				}
			}

			// 添加按钮单击事件
			function btnAddClick() {
				Ext.getCmp('addForm2').form.reset();
				Ext.getCmp('firstResult').readOnly = false;
				Ext.getCmp('firstResult').enable();
				Ext.getCmp('classifyDesc').readOnly = false;
				Ext.getCmp('confirmResult').setVisible(false);
				Ext.getCmp('confirmDesc').setVisible(false);

				// alert(debtNo);
				Ext.Ajax
						.request({
							url : 'obligation/findNewestCR.do?serialNo='
									+ debtNo,
							method : 'POST',
							success : function(response) {
								var addJSON = Ext.util.JSON
										.decode(response.responseText);
								// alert(addJSON.status);

								if (addJSON == null) {
									Ext.getCmp("addWin2").buttons[0].handler = addClassifyFunction;
									Ext.getCmp("addWin2").show();
								} else {
									var status = addJSON.status;
									if (status == null || status == "04") {
										Ext.getCmp("addWin2").buttons[0].handler = addClassifyFunction;
										Ext.getCmp("addWin2").show();
									} else {
										Ext.Msg
												.alert("提示",
														"当前资产分类认定正在进行中！<br/>请在该认定结束后重新初分！");
									}
								}
							},
							failure : function() {
								Ext.MessageBox.alert("请求异常！");
							}
						});

			}
			;

			// 新增按钮
			var addUserBtn = Ext.getCmp('btnAdd');
			addUserBtn.on('click', btnAddClick);

			// 查看详情
			function checkClassify() {
				if (grid2.getSelectionModel().getSelections()[0] == undefined) {
					Ext.Msg.alert("提示", "请选中要操作的项！");
				} else {
					var serialNo = grid2.getSelectionModel().getSelections()[0].data.serialNo;
					var status = grid2.getSelectionModel().getSelections()[0].data.status;

					Ext.getCmp('addForm2').form.reset();
					if (status == '初分状态') {
						Ext.getCmp('firstResult').readOnly = false;
						Ext.getCmp('firstResult').enable();
						Ext.getCmp('classifyDesc').readOnly = false;
						Ext.getCmp('confirmResult').setVisible(false);
						Ext.getCmp('confirmDesc').setVisible(false);
					} else if (status == '退回初分人状态') {
						Ext.getCmp('firstResult').readOnly = false;
						Ext.getCmp('classifyDesc').readOnly = false;
						Ext.getCmp('confirmResult').setVisible(true);
						Ext.getCmp('confirmDesc').setVisible(true);
					} else {
						Ext.getCmp('firstResult').readOnly = true;
						Ext.getCmp('classifyDesc').readOnly = true;
						Ext.getCmp('confirmResult').setVisible(false);
						Ext.getCmp('confirmDesc').setVisible(false);
					}

				}
				Ext.getCmp("addWin2").show();

				// 表单加载数据
				addForm2.form
						.load({
							waitMsg : '正在加载数据请稍后',
							waitTitle : '提示',
							url : 'obligation/getClassifyRecord.do',
							params : {
								serialNo : grid2.getSelectionModel()
										.getSelections()[0].data.serialNo
							},
							method : 'post',
							success : function(form, action) {

							},
							failure : function(form, action) {
								Ext.Msg.alert('提示', '数据加载失败');
							}
						});

				if (status == '初分状态' || status == '退回初分人状态') {
					Ext.getCmp("addWin2").buttons[0].handler = editClassifyFunction;
				} else if (status == '待认定状态') {
					Ext.getCmp("addWin2").buttons[0].handler = function() {
						Ext.MessageBox.alert("提示", "当前结果已提交，不能修改！");
					};
				} else if (status == '已认定') {
					Ext.getCmp("addWin2").buttons[0].handler = function() {
						Ext.MessageBox.alert("提示", "当前结果已认定，不能修改！");
					};
				}

			}

			function editClassifyFunction() {
				if (addForm2.form.isValid()) {
					addForm2.form.doAction('submit',
							{
								url : 'obligation/editClassifyRecord.do',
								params : {
									debtNo : grid.getSelectionModel()
											.getSelections()[0].data.debtNo
								},
								method : 'post',
								success : function() {
									Ext.getCmp("addWin2").hide();
									grid2.store.reload();
									Ext.Msg.alert('提示', '保存成功！');
								},
								failure : function() {
									Ext.Msg.alert('提示', '保存失败！');
								}
							});
				}
			}

			function commitClassify() {
				if (grid2.getSelectionModel().getSelections()[0] == undefined) {
					Ext.Msg.alert("提示", "请选中要操作的内容！");
				} else {
					var debtNo = grid2.getSelectionModel().getSelections()[0].data.debtNo;
					var selectedId = grid2.getSelectionModel().getSelections()[0].data.serialNo;
					var status = grid2.getSelectionModel().getSelections()[0].data.status;
					if (status == '待认定状态') {
						Ext.Msg.alert("提示", "当前资产分类结果已提交，不能重复提交！");
					} else if (status == '已认定') {
						Ext.Msg.alert("提示", "当前资产分类结果已认定！");
					} else if (status == '') {
						Ext.Msg.alert("提示", "该债项没有资产分类初分信息，无法提交！");
					} else {
						Ext.MessageBox
								.confirm(
										'提示',
										'确定提交此资产初分结果吗？',
										confirm = function(bool) {
											if (bool == 'no')
												return false;
											Ext.Ajax
													.request({
														url : 'obligation/commitClassifyRecord.do',
														params : {
															serialNo : selectedId
														},
														method : 'POST',
														success : function(
																response) {
															//grid2.store.reload(); 
															window.location.reload();
														},
														failure : function() {
															Ext.MessageBox
																	.alert("复评和审核人员无法提交！");
														}
													});
										});
					}

				}
			}

		});